English -فارسي

Friday December 02, 2005 10:22:05 ب.ظ

 

 

 

 

 

صفحه اول

 

دادگان(پایگاه داده)

ترجمه از: مجتبی امیرزاده - دانشجوی مهندسی نرم افزار جهرم

http://www.ifjam.50megs.com

پایگاه داده در اصل مجموعه ای سازمان یافته از اطلاعات است.این واژه  از علم کامپیوترسرچشمه می گیرد ،اما کاربر وسیع و عمومی نیز دارد، این وسعت به اندازه ای است که مرکز اروپایی پایگاه داده (که تعاریف خردمندانه ای برای پایگاه داده ایجاد می کند)شامل تعاریف غیر الکترونیکی برای پایگاه داده می باشد. در این مقاله به کاربرد های تکنیکی برای این اصطلاح محدود می شود.

یک تعریف ممکن این است که: پایگاه داده مجموعه ای از رکورد های ذخیره شده درکامپیوتر با یک روش سیستماتیک(اصولی) مثل یک برنامه کامپیوتری  است که می تواند به سوالات کاربر پاسخ دهد. برای ذخیره و بازیابی بهتر، هر رکورد معمولا به صورت مجموعه ای از اجزای داده ای (data elements) یا رویداد ها سازماندهی می گردد. بخش های بازیابی شده در هر پرسش به اطلاعاتی(information) تبدیل می شود که برای اتخاذ یک تصمیم کاربرد دارد. برنامه کامپیوتری که برای مدیریت و پرسش و پاسخ بین پایگاه های داده ای استفاده می شود را مدیر سیستم پایگاه داده ای (database management system) یا به اختصار (DBMS) می نامیم. خصوصیات و طراحی سیستم های پایگاه داده ای در علم اطلاعات (information science) مطالعه می شود.

مفهوم اصلی پایگاه داده این است که پایگاه داده مجموعه ای از رکورد ها یا تکه هایی از یک شناخت است.نوعا در یک پایگاه داده توصیف ساخت یافته ای برای موجودیت های نگه داری شده در پایگاه داده  وجود دارد: این توصیف با یک الگو یا مدل(schema) شناخته می شود. مدل توصیفی ، اشیا  پایگاه های داده و ارتباط بین آنها را نشان می دهد. روش های متفاوتی برای سازماندهی این مدل ها وجود دارد که به آنها مدل های پایگاه داده(database models) گوییم. پر کاربرد ترین مدلی که امروزه بسیار استفاده می شود، مدل رابطه ای(relational model) است که به طور عام به صورت زیر تعریف می شود: نمایش تمام اطلاعاتی که به فرم جداول مرتبط  که هریک از سطر ها و ستونها تشکیل شده است(تعریف حقیقی آن در علم ریاضیات برسی می شود). در این مدل وابستگی ها به کمک مقادیر مشترک در بیش از یک جدول نشان داده می شود. مدل های دیگری مثل مدل سلسله مراتبی(hierarchical model) و مدل شبکه ای(network model) به طور صریح تری ارتباط ها را نشان می دهند.

در مباحث تخصصی تر اصتلاح دادگان یا پایگاه داده به صورت مجموعه ای از رکورد های مرتبط با هم تعریف می شود. بسیاری از حرفه ای ها مجموعه ای از داده هایی با خصوصیات یکسان به منظور ایجاد یک پایگاه داده ای یکتا استفاده می کنند.

معمولا DBMS ها بر اساس مدل هایی که استفاده می کنند تقسیم بندی می شوند: ارتباطی،شی گرا، شبکه ای و امثال آن. مدل های داده ای به تعیین زبانهای دسترسی به پایگاه های داده  علاقه مند هستند. بخش قابل توجهی از مهندسی DBMS مستقل از مدل های می باشد و به فاکتور هایی همچون اجرا، همزمانی،جامعیت و بازیافت از خطاهای سخت افزاری وابسطه است.در این سطح تفاوت های بسیاری بین محصولات وجود دارد.

تاریخچه پایگاه داده

اولین کاربردهای اصطلاح پایگاه داده به June 1963 باز میگردد، یعنی زمانی که شرکت  System Development Corporation مسئولیت اجرایی یک طرح به نام "توسعه و مدیریت محاسباتی یک پایگاه داده ای مرکزی" را بر عهده گرفت. پایگاه داده به عنوان یک واژه واحد در اوایل دهه 70 در اروپا و در اواخر دهه 70 در خبر نامه های معتبر آمریکایی به کار رفت.(بانک داده ای یا Databank در اوایل سال 1966 در روزنامه Washington Post به کار رفت)

اولین سیستم مدیریت پایگاه داده در دهه 60 گسترش یافت. از پیشگامان این شاخه Charles Bachman می باشد.  مقالات Bachman این را نشان داد که فرضیات او کاربرد بسیار موثرتری برای دسترسی به وسایل ذخیره سازی را محیا می کند. در آن زمانها پردازش داده بر پایه کارت های منگنه و نوار های مغناطیسی بود که پردازش سری اطلاعات را مهیا می کند. دو نوع مدل داده ای در آن زمانها ایجاد شد:CODASYL (Conference on Data Systems Languages) موجب توسعه مدل شبکه ای شدکه ریشه در نظریات Bachman داشت و مدل سلسله مراتبی که توسط North American Rockwell ایجاد شد و بعدا با اقباس از آن شرکت IBM محصولIMS را تولید نمود.

مدل رابطه ای توسط  E. F. Codd در سال 1970 ارائه شد.او مدل های موجود را مورد انتقاد قرار می داد. برای مدتی نسبتا طولانی این مدل در مجامع علمی مورد تایید بود. اولین محصول موفق برای میکرو کامپیوتر ها dBASE بودکه برای سیستم عامل هایCP/M و PC-DOS/MS-DOS ساخته شد. در جریان سال 1980 تحقیقات بر روی مدل توزیع شده(distributed database)  و ماشین های پایگاه داده ای(database machines) متمرکز شد، اما تاثیر کمی بر بازار گذاشت. در سال 1990 توجهات به طرف مدل شی گرا(object-oriented databases) جلب شد. این مدل جهت کنترل داده های مرکب لازم بود و به سادگی بر روی پایگاه داده های خاص، مهندسی داده(شامل مهندسی نرم افزار منابع) و داده های چند رسانه ای کار می کرد.

در سال 2000 نوآوری تازه ای رخ داد و XML database به وجود آمد. هدف این مدل از بین بردن تفاوت بین مستندات و داده ها است و کمک می کند که منابع اطلاعاتی چه ساخت یافته باشند یا نه در کنار هم قرار گیرند.

 

مدل های DataBase

شگرد های مختلفی برای مدل های داده ای وجود دارد. بیشتر سیستم های پایگاه داده ای هر چند که طور معمول بیشتر از یک مدل را مورد حمایت قرار می دهند، حول یک مدل مشخص ایجاد شده اند. برای هر یک از مدل های منطقی(logical model) اجرا های فیزیکی مختلفی قابل پیاده شدن است و سطوح کنترل مختلفی در  انطباق فیزیکی برای کاربران محیا می کند. یک انتخاب مناسب تاثیر موثری بر اجرا دارد. مثالی از موارد مدل رابطه ای (relational model) است: همه رویدادهای مهم در مدل رابطه ای امکان ایجاد ایندکس هایی که دسترسی سریع به سطر ها در جدول را می دهد،فراهم می شود.

یک مدل داده ای تنها شیوه ساختمان بندی داده ها نیست بلکه معمولا به صورت مجموعه ای از عملیات ها که می تواند روی داده ها اجرا شود تعریف می شوند. برای مثال در مدل رابطه ای عملیاتی همچون انتخاب(selection)، طرح ریزی(projection) و اتصال(join) تعریف می گردد.

 

مدل تخت(Flat)

مدل تخت یا جدولی(flat (or table) model ) تشکیل شده است از یک آرایه دو بعدی با عناصر داده ای که همه اجزای یک ستون به صورت داده های مشابه فرض می شود و همه عناصر یک سطر با هم در ارتباط هستند. برای نمونه در ستون هایی که برای نام کاربری و رمز عبور در جزئی از سیستم های پایگاه داده ای امنیتی مورد استفاده قرار می گیرد هر سطر شامل رمز عبوری است که مخصوص یک کاربر خاص است. ستون های جدول که با آن در ارتباط هستند به صورت داده کاراکتری، اطلاعات زمانی ، عدد صحیح یا اعداد ممیز شناور تعریف می شوند. این مدل پایه برنامه های محاسباتی(spreadsheet) است.

پایگاه داده ه با فایل های تخت به سادگی توسط فایل های متنی تعریف می شوند. هر رکورد یک خط است و فیلد ها به کمک جدا کننده هایی از هم مجزا می شوند. فرضا به مثال زیر دقت کنید:

id    name    team
1     Amy     Blues
2     Bob     Reds
3     Chuck   Blues
4     Dick    Blues
5     Ethel   Reds
6     Fred    Blues
7     Gilly   Blues
8     Hank    Reds

داده های هر ستون مشابه هم است ما به این ستونها فیلد ها (fields) گوییم. و هر خط را غیر از خط اول یک رکورد(record) می نامیم. خط اول را که برخی پایگاه های داده ای آنرا ندارند رکورد برچسب(field labels) گوییم. هر مقدار داده ای اندازه خاص خود را دارد که اگر به آن اندازه نرسد می توان از کاراکنر فاصله برای این منظور استفاده کرد اما این مسئله مخصوصا زمانی که بخواهیم اطلاعات را بر روی کارت های منگنه قرار دهیم مشکل ساز خواهد شد. امروزه معمولا از کاراکتر TAB برای جدا سازی فیلد ها و کاراکتر خط بعد برای رکورد بعدی استفاده می کنیم. البته شیوه های دیگری هم وجود دارد مثلا به مثال زیر دقت کنید:

"1","Amy","Blues"
"2","Bob","Reds"
"3","Chuck","Blues"
"4","Dick","Blues"
"5","Ethel","Reds"
"6","Fred","Blues"
"7","Gilly","Blues"
"8","Hank","Reds"

این مثال از جدا کننده کاما استفاده می کند.در این نوع مدل تنها قابلیت حذف،اضافه،دیدن و ویرایش وجود دارد که ممکن است کافی نباشد.Microsoft Excel این مدل را پیاده سازی میکند.

مدل شبکه ای(Network)

در سال 1969 و در کنفرانس زبانهای سیستم های داده ای (CODASYL) توسطCharles Bachman  ارائه شد. در سال 1971 مجددا مطرح شد و اساس کار پایگاه داده ای قرار گرفت و در اوایل دهه 80 با ثبت آن درسازمان بين المللي استانداردهاي جهاني یا ISO به اوج رسید.

مدل شبکه ای (database model) بر پایه دو سازه مهم یعنی مجموعه ها و رکورد ها ساخته می شود و برخلاف روش سلسله مراتبی که از درخت استفاده می کند، گراف را به کار می گیرد. مزیت این روش بر سلسله مراتبی این است که مدل های ارتباطی طبیعی بیشتری را بین موجودیت ها فراهم می کند. الی رغم این مزیت ها به دو دلیل اساسی این مدل با شکست مواجه شد: اول اینکه شرکت IBM با تولید محصولات IMS و  DL/I که بر پایه مدل سلسله مراتبی است این مدل را نادیده گرفت. دوم اینکه سرانجام مدل رابطه ای (relational model) جای آن را گرفت چون سطح بالاتر و واضح تر بود. تا اوایل دهه 80 به علت کارایی رابط های سطح پایین مدل سلسله مراتبی و شبکه ای پیشنهاد می شد که بسیاری از نیاز های آن زمان را برطرف می کرد. اما با سریعتر شدن سخت افزار به علت قابلیت انعطاف و سودمندی بیشتر سیستم های رابطه ای به پیروزی رسیدند.

رکورد ها در این مدل شامل فیلد هایی است( ممکن است همچون زبانCOBOL به صورت سلسله مراتب اولویتی باشد). مجموعه ها با ارتباط یک به چند بین رکورد ها تعریف می شود: یک مالک و چند عضو. عملیات های  مدل شبکه ای از نوع هدایت کننده است: یک برنامه در موقعیت جاری خود باقی می ماند و از یک رکورد به رکورد دیگر می رود  هر گاه که ارتباطی بین آنها وجود داشته باشد.  معمولا از اشاره گر ها(pointers) برای آدرس دهی مستقیم به یک رکورد در دیسک استفاده می شود. با این تکنیک کارایی بازیابی اضافه می شود هر چند در نمایش ظاهری این مدل ضروری نیست .

در زیر مثالی از این مدل آورده شده است.

 

مدل رابطه ای(Relational)

مدل رابطه ای(relational model) در یک مقاله تحصیلی توسط E. F. Codd  در سال 1970 ارائه گشت. این مدل یک مدل ریاضیاتی است که با مفاهیمی چون مستندات منطقی(predicate logic) و تئوری مجموعه ها(set theory) در ارتباط است. محصولاتی همچون Ingres،Oracle، DB2 و SQL Server بر این پایه ایجاد شده است. ساختار داده ها در این محصولات به صورت جدول است با این تفاوت که می تواند چند سطر داشته باشد. به عبارت دیگر دارای جداول چند گانه است که به طور صریح ارتباطات بین آنها بیان نمی شود و در عوض کلید هایی به منظور تطبیق سطر ها در جداول مختلف استفاده می شود. به عنوان مثال جدول کارمندان ممکن است ستونی به نام "موقعیت" داشته باشد که کلید جدول موقعیت را با هم تطبیق می دهد.

 
 

Internet Access
Copyright © 2005 ifjam inc.All right reserved
Email to: ifjam@hotmail.com